Recimo da je neko od tvojih drugara koji ide u drugu školu napisao ovaj program koji računa njegovu srednju ocenu za polugodište:
using namespace std; #include <iostream> void main() { double prosek; int brPredmeta = 11; int srpski = 4; int matematika = 5; int fizicko = 5; int engleski = 5; int fizika = 5; int hemija = 4; int ruski = 5; int muzicko = 5; int likovno = 5; int kung_fu = 5; int kibernetika = 5; double zbir = srpski + matematika + fizicko + engleski + fizika + hemija + ruski + muzicko + likovno + kung_fu + kibernetika; prosek = zbir / brPredmeta; cout << "Tvoj prosek je:" << prosek; }
Da li primećuješ da je promenljiva zbir deklarisana kao double iako sadrži celobrojnu vrednost? To je zato što želimo da količnik zbir/brPredmeta bude izračunat kao realan broj (da su i deljenik i delilac bili celobrojni, dobili bismo samo celobrojni deo količnika).
Promenljiva zbir je mogla da bude deklarisana i kao int. U tom slučaju bi njena vrednost morala da se prevede u realnu prilikom deljenja, kao što je prikazano u sledećim linijama programskog koda.
int zbir = srpski + matematika + fizicko + engleski + fizika + hemija + ruski + muzicko + likovno + kung_fu + kibernetika; prosek = (double) zbir / brPredmeta;
Pošto već dovoljno poznaješ programiranje da možeš da razumeš ovaj program, verovatno ti ne bi bilo teško da ga prepraviš i uneseš svoje ocene umesto ovde upisanih. Tako dobijaš program koji računa tvoj prosek, i to izgleda fino. E, sada tvoji drugari vide da imaš takav program i očekuju od tebe da im pomogneš da izračunaju svoje prosečne ocene. Oni ne uče programiranje i nisu sasvim sigurni kako da preprave i pokrenu program, a ti ne želiš da ceo dan praviš različite verzije skoro istog programa. Šta može da se uradi kako bismo rešili ovaj problem?
Bilo bi odlično da možemo da damo drugarima program pomoću kojeg oni sami mogu da izračunaju srednju ocenu, iako ne uče programiranje. Da bi nam to uspelo, treba da imamo program koji ne sadrži gotove podatke, nego samo postupak računanja, a da svako ko pokrene program može sam da unese svoje podatke (to jest ocene) i vidi svoj prosek. Evo jednog takvog programa:
using namespace std; #include <iostream> void main() { double zbir = 0; double prosek; int brPredmeta = 11; int ocena; cout << "Sta imas iz srpskog?\n"; cin >> ocena; zbir += ocena; cout << "Sta imas iz matematike?\n"; cin >> ocena; zbir += ocena; cout << "Sta imas iz fizickog?\n"; cin >> ocena; zbir += ocena; cout << "Sta imas iz engleskog?\n"; cin >> ocena; zbir += ocena; cout << "Sta imas iz fizike?\n"; cin >> ocena; zbir += ocena; cout << "Sta imas iz hemije?\n"; cin >> ocena; zbir += ocena; cout << "Sta imas iz ruskog?\n"; cin >> ocena; zbir += ocena; cout << "Sta imas iz muzickog?\n"; cin >> ocena; zbir += ocena; cout << "Sta imas iz likovnog?\n"; cin >> ocena; zbir += ocena; cout << "Sta imas iz kung-fu-a?\n"; cin >> ocena; zbir += ocena; cout << "Sta imas iz kibernetike?\n"; cin >> ocena; zbir += ocena; prosek = zbir / brPredmeta; cout << "Tvoj prosek je:" << prosek; }
Nova naredba u ovom programu je cin >> ocena;.
Ovakve naredbe ćemo zvati naredbe ulaza, jer pomoću njih podaci ulaze u program. Pri izvršavanju konkretno ove naredbe, program prihvata celobrojnu vrednost otkucanu na tastaturi i smešta je u celobrojnu promenljivu ocena.
Strelice >> u naredbi ulaza okrenute su od reči cin (console input - ulaz u konzolni program) ka promenljivoj, jer podatak ide iz ulaza (tastature) ka promenljivoj. Podsetimo se, u naredbi izlaza strelice su bile okrenute od teksta i promenljivih koje daju vrednost, ka reči cout (izlazu iz programa).